#pragma once

#include "LightState.h"

// Forward declaration to resolve circular dependency/include
class LightState;

class Light 
{
public:
    Light();
    // same as before
    inline LightState* getCurrentState() const { return currentState; }     // const: can't change the obj's value
    // in here, we'll delegate the state transition to the currentState
    void nextState();
    // This will get called by the current state
    void setState(LightState& newState);

private:
    // LightState here is now a class, not the enum that we saw earlier
    LightState* currentState;
};

